#ifndef THREAD_H
#define THREAD_H

#include <QWidget>
#include <QThread>
#include <QDebug>
#include <QPushButton>


class WorkerThread;
class WorkerThreadMove;

namespace Ui {
class Thread;
}

class Thread : public QWidget
{
    Q_OBJECT

public:
    explicit Thread(QWidget *parent = 0);
    ~Thread();

     QPushButton *pushButton;
     QPushButton *pushButtonSDCheck;
     QPushButton *StoppushButton;

private:
    Ui::Thread *ui;
    WorkerThread *workerThread;
    WorkerThreadMove *workerThreadmove;

private slots:
    /* 槽函数，用于接收线程发送的信号 */
    void handleResults(const QString &result);

    /* 点击按钮开启线程 */
    void pushButtonClicked();
    void pushButtonSDCheckClicked();
};

/* 新建一个WorkerThreadMove类继承于QThread */
class WorkerThreadMove : public QThread
{
    /* 用到信号槽即需要此宏定义 */
    Q_OBJECT

public:
    WorkerThreadMove(QWidget *parent) {
        Q_UNUSED(parent);
    }

    /* 重写run方法，继承QThread的类，只有run方法是在新的线程里 */
    void run();

signals:
    /* 声明一个信号，译结果准确好的信号 */
    void resultReadyMove(const QString &s);
};

class WorkerThread : public QThread
{
    /* 用到信号槽即需要此宏定义 */
    Q_OBJECT

public:
    WorkerThread(QWidget *parent) {
        Q_UNUSED(parent);
    }

    /* 重写run方法，继承QThread的类，只有run方法是在新的线程里 */
    void run();
    void CheckIsDevice(int plug_sock);

signals:
    /* 声明一个信号，译结果准确好的信号 */
    void resultReady(const QString &s);
};

#endif // THREAD_H
